/*

有无符号16bit（bit15, bit14,…,bit1,bit0）的数a和b，
设置a的值为0x8F；
然后，取出低5位，存到b中；
然后，将a的bit8设置为1，其他位不变，存到b中；
然后，将a的bit3设置为0，其他位保持不变，存到b中。

 */

#include <stdio.h>
int main()
{
    unsigned short int a, b;
    // Q1
    a = 0x8F;
    b = a << 11;
    b = b >> 11;
    printf("0x%x\n", b);

    b = a & 0x1F;
    printf("0x%x\n", b);
    // Q2
    b = a | 0x100;
    printf("0x%x\n", b);

    b = a | (1 << 8);
    printf("0x%x\n", b);
    // Q3
    b = a & 0xFFF7;
    printf("0x%x\n", b);

    b = 1 << 3;
    b = a & (~b);
    printf("0x%x\n", b);
}